This invention relates in general to the field of data processing, and more specifically to multi-process compression.
Computers manipulate or process information. The information used by computers is often stored in files of various formats and sizes. Computers may compress information stored in these files to conserve storage resources. For example, computers running in a DOS or MS-WINDOWS environment may utilize a compression program such as PKZIP.
Computers that perform data processing on large amounts of information may benefit from the reduced file storage requirements as well as the increased processing efficiency offered by file compression. However, existing compression techniques may not take advantage of the processing resources offered by more powerful computers. For example, existing compression techniques do not exploit the distributed processing capability of multi-process computers.
In accordance with the present invention, the disadvantages and problems associated with compression on multi-process computers has been substantially reduced or eliminated.
In accordance with one embodiment of the present invention, a system for compressing a file includes a splitter that splits the file into subfiles. Compressors are coupled to the splitter, and each compressor compresses one of the subfiles to produce a compressed subfile. A combiner is coupled to the compressors and combines the compressed subfiles produced by the compressors to produce a compressed file.
In accordance with another embodiment of the present invention, a method for compressing a file incudes: splitting the file into subfiles; compressing the subfiles to produce compressed subfiles; and combining the compressed subfiles to produce a compressed file.
Important technical advantages of the present invention include a compression technique that takes advantage of multi-process computers. This is accomplished by splitting the task of compressing a file into smaller tasks performed by separate compressors. In one embodiment, each compressor is a separate software process that receives and compresses a subfile. In another embodiment, the compressors may run on separate microprocessors. By splitting up the compression task to two or more subtasks, the present invention exploits the distributed processing capabilities of multi-process computers.
Other important technical advantages of the present invention include a particular multi-process compression technique for records-based files. Still another important technical advantage of the present invention includes storing, accessing, and modifying compression information that may be associated with a file to indicate parameters used for compression and decompression. Other important technical advantages are readily apparent to one skilled in the art from the following figures, descriptions, and claims.